home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / kowin / util / mclick.lzh / mclick.c next >
C/C++ Source or Header  |  1992-01-18  |  2KB  |  81 lines

  1. /*    mclick.win     1991 by H.Ogasawara (COR.)    */
  2.  
  3. #include    <stdio.h>
  4. #include    "wlib.h"
  5.  
  6. #define        MAXLEN    0xff00
  7.  
  8. int        left_mode= 0x0403,
  9.         right_mode= 0x0403;
  10. int        left_len,
  11.         right_len;
  12.  
  13. unsigned short    left[MAXLEN/2],
  14.         right[MAXLEN/2];
  15.  
  16. ClickExec( wp, info )
  17. WindowID    wp;
  18. EventInfo    *info;
  19. {
  20.     if( info->option == EventMouseSwitch ){
  21.         if( info->LeftON ){
  22.             ADPCMMOD( 0 );
  23.             ADPCMOUT( left, left_mode, left_len );
  24.         }else if( info->RightON ){
  25.             ADPCMMOD( 0 );
  26.             ADPCMOUT( right, right_mode, right_len );
  27.         }
  28.     }
  29.     return    FALSE;
  30. }
  31.  
  32. pcmread( buf, file )
  33. void        *buf;
  34. unsigned char    *file;
  35. {
  36.     int    fn= OPEN( file, 0 ),
  37.         length;
  38.     if( fn >= 0 ){
  39.         length= READ( fn, buf, MAXLEN );
  40.         CLOSE( fn );
  41.         return    length;
  42.     }
  43.     ConsoleOpen();
  44.     ConsolePrint( "mclock:" );
  45.     ConsolePrint( file );
  46.     ConsolePrint( "が読めません\r\n" );
  47.     return    FALSE;
  48. }
  49.  
  50. int    WindowProcessLevel= 2;
  51.  
  52. WindowMain( argc, argv )
  53. char    **argv;
  54. {
  55.     for( left_len= right_len= 0 ; --argc ;){
  56.         if( **++argv == '-' ){
  57.             switch( *++*argv ){
  58.             case 'L':
  59.             case 'l':
  60.                 left_mode= ((*argv)[1]&7)*256+((*argv)[2]&3);
  61.                 break;
  62.             case 'R':
  63.             case 'r':
  64.                 right_mode= ((*argv)[1]&7)*256+((*argv)[2]&3);
  65.             }
  66.         }else{
  67.             if( !left_len )
  68.                 left_len= pcmread( left, *argv );
  69.             else
  70.                 right_len= pcmread( right, *argv );
  71.         }
  72.     }
  73.     if( left_len && right_len ){
  74.         WindowSetRootEvent( ClickExec );
  75.     }else{
  76.         ConsoleOpen();
  77.         ConsolePrint( "mclick: エラーが発生しました\r\n" );
  78.         WindowSendSignal( WindowProcessID, SignalKill, NULL );
  79.     }
  80. }
  81.